/**
 * Created on [2021-05-24] by zhengrr
 *
 * 项目名称: btfvilg
 *
 * 本程序版权属于福建慧政通信息科技有限公司所有。
 *
 * 任何组织和个人未经福建慧政通信息科技有限公司许可与授权,不得擅自传播、复制、更改该程序的内容。
 * 本程序受版权法和国际条约的保护。如未经授权而擅自复制或传播本程序(或其中任何部分),
 * 将受到严厉的刑事及民事制裁，并将在法律许可的范围内受到最大可能的起诉!
 *
 * ©2021 福建慧政通信息科技有限公司
 */
package com.sunnada.btfvilg.service;

import com.sunnada.btfvilg.entity.RemoteLayer;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sunnada.btfvilg.model.remotelayer.FileVo;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 图层管理-图层信息 服务类
 *
 * @author zhengrr
 */
public interface RemoteLayerService extends IService<RemoteLayer> {

    /**
     * 创建文件。
     *
     * @param multipartFile     上传的文件
     * @return 创建成功的id
     */
    int uploadFile(MultipartFile multipartFile) throws Exception;

    /**
     * 根据文件名获取服务器上已有文件列表
     * @param filename
     * @return
     * @throws Exception
     */
    List<FileVo> getFilesByName(String filename) throws Exception;

    /**
     * 通过id获取服务器已有文件信息
     * @param ids
     * @return
     * @throws Exception
     */
    List<RemoteLayer> getFilesByIds(List<Integer> ids) throws Exception;

    /**
     * 保存按钮，保存新名字及状态
     * @param name
     * @return
     * @throws Exception
     */
    Integer saveNameAndState(Integer id,String name) throws Exception;

    /**
     * 根据id删除信息
     * @param id
     * @return
     * @throws Exception
     */
    Boolean deleteInfo(Long id) throws Exception;

    /**
     * 下载文件
     * @param id
     * @return
     * @throws Exception
     */
    void downloadFile(Integer id, HttpServletResponse response);

}
